package com.zrkizzy.hashmap;

import java.util.HashMap;
import java.util.Map;

/**
 * 242. 有效的字母异位词
 *
 * @author zhangrongkang
 * @since 2022/11/22
 * @see <a href="https://leetcode.cn/problems/valid-anagram/description/">https://leetcode.cn/problems/valid-anagram/description/</a>
 */
public class 有效的字母异位词 {

    // 哈希表
    public boolean isAnagram(String s, String t) {
        if (s.length() != t.length()) {
            return false;
        }
        // 定义哈希表
        Map<Character, Integer> map = new HashMap<>();
        // 遍历第一个数字
        for (int i = 0; i < s.length(); i++) {
            int count = map.getOrDefault(s.charAt(i), 0);
            map.put(s.charAt(i), ++count);
        }
        // 遍历第二个数字
        for (int i = 0; i < t.length(); i++) {
            int count = map.getOrDefault(t.charAt(i), 0);
            map.put(t.charAt(i), --count);
        }
        // 遍历哈希表
        for (Character c : map.keySet()) {
            if (map.get(c) < 0) {
                return false;
            }
        }

        return true;
    }
}
